package com.service;

import com.entity.PropertyProjectInfo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

public interface PropertyProjectInfoService {
    /**
     * 保存物业项目信息
     * @param propertyProjectInfo 物业项目信息
     * @return 保存后的物业项目信息
     */
    PropertyProjectInfo save(PropertyProjectInfo propertyProjectInfo);

    /**
     * 根据ID删除物业项目信息
     * @param id 物业项目信息ID
     */
    void deleteById(Integer id);

    /**
     * 更新物业项目信息
     * @param propertyProjectInfo 物业项目信息
     * @return 更新后的物业项目信息
     */
    PropertyProjectInfo update(PropertyProjectInfo propertyProjectInfo);

    /**
     * 根据ID获取物业项目信息
     * @param id 物业项目信息ID
     * @return 物业项目信息
     */
    PropertyProjectInfo findById(Integer id);

    /**
     * 获取所有物业项目信息
     * @return 物业项目信息列表
     */
    List<PropertyProjectInfo> findAll();

    /**
     * 分页查询物业项目信息
     * @param pageable 分页参数
     * @return 物业项目信息分页结果
     */
    Page<PropertyProjectInfo> findAll(Pageable pageable);

    /**
     * 根据项目名称模糊查询物业项目信息
     * @param projectName 项目名称
     * @param pageable 分页参数
     * @return 物业项目信息分页结果
     */
    Page<PropertyProjectInfo> findByProjectNameContaining(String projectName, Pageable pageable);
}